#pragma once

#include "MatchData.h"

class ServiceProvider;

class MatchInterface 
{
public:
	MatchInterface(ServiceProvider* i_sp);
	virtual ~MatchInterface();

	void InitMatch(Team* const i_t1, Team* const i_t2, void* i_innerParams);
	virtual void PlayMatch(const bool i_produceEvents) = 0;
	const MatchData& GetMatchData() const;

protected:
	virtual void InnerInit(void* i_innerParams);

	void AppendEvent(const int i_minute, const STL::string& i_category, const STL::string& i_first, const STL::string& i_second);
	void AppendEvent(const int i_minute, const STL::string& i_category, const STL::string& i_name);
	void AppendEvent(const int i_minute, const STL::string& i_category);
	void AppendRawEvent(const int i_minute, const STL::string& i_event);

	ServiceProvider* m_sp;
	MatchData m_matchData;
};

